/*
******************************************************************************************************* 
**  Copyright (C) 2019, 苏州检易生物科技有限公司 
**  All rights reserved. 
** 
**  FileName:       	timer.h
**  Description:	
**  Author:        	 
**  Version				v0.1
**  Date:           	2019-06-24
**	Function List： 
**  History:         
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*                                              	防止重复包含
*********************************************************************************************************
*/

#ifndef _TIMER_H_
#define _TIMER_H_
/*
*********************************************************************************************************
*                                              	调试开关
*********************************************************************************************************
*/


#ifdef __cplusplus
extern "C" {
#endif

/*
*********************************************************************************************************
*                                              	头文件
*********************************************************************************************************
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "stm32h7xx.h"
#include "stm32h7xx_hal.h"
//#include "bsp.h"
/*
*********************************************************************************************************
*                                              	宏定义
*********************************************************************************************************
*/




/*
*********************************************************************************************************
*                                              枚举和结构体类型定义
*********************************************************************************************************
*/
typedef struct HW_TIMER{
	TIM_TypeDef*  tim;
	TIM_HandleTypeDef hal_handler;
	struct timer_callback_node* node_callback;
	__IO uint64_t cnt;
}hw_timer_t;

typedef void (*timer_callback)(hw_timer_t* handle);

typedef struct timer_callback_node{
	void (*timer_callback)(hw_timer_t* handle);
	struct timer_callback_node * next;
}timer_callback_node_t;


/*
*********************************************************************************************************
*                                              	全局变量声明
*********************************************************************************************************
*/
extern hw_timer_t TIM_1K;
extern hw_timer_t TIM_200K;
extern __IO uint64_t LocalTime;
/*
*********************************************************************************************************
*                                              	函数声明
*********************************************************************************************************
*/

void bsp_timer_init(void);
void bsp_timer_callback_register(hw_timer_t*,timer_callback);
void bsp_timer_deinit(void);


#ifdef __cplusplus
}
#endif
#endif
